When computationally intensive code is processed, hardware accelerators can be used to accelerate the computation of the code beyond speeds that are typically provided by a general purpose processor. To accelerate computation of the code, hardware accelerators are typically implemented with specialized processors separate from the main computer processing units (CPU). The specialized processors can be optimized to perform specific computations more efficiently (e.g., multiple calculations in parallel) than is typically possible on a main CPU and to then pass the computed result back to the main CPU for further computation. However, because computed results are passed between the hardware accelerator and the main CPU, even if both the main CPU and the hardware accelerator are secure, the system (e.g., the main CPU and the hardware accelerator) can still be subject to fault attacks (e.g., attacks that modify the behavior of an integrated circuit by causing bits to change or flip).